#!/usr/bin/env python3

from tables._表 import 表 as _表
import re

class 表(_表):
	def __init__(自):
		自.hzs_to_skip = 'ˉˊˇˋ˙·'
		自.hz_repls = {
			'⿱宀⿰⿱土示又': '㝮',
			'〈忄柬〉': '𱞫',
		}
		自.py_repls = [
			('·(.*)', r'\g<1>0'),  # 輕聲
			('ˊ', '2'), ('ˇ', '3'), ('ˋ', '4'), ('˙', '5'),
			('(?<![0-5])$', '1'),

			('(?<=[ㄓㄔㄕㄖ])(?=[0-5]|$)', 'ʅ'),
			('(?<=[ㄗㄘㄙ])(?=[0-5]|$)', 'ɿ'),

			('ㄅ', 'p'), ('ㄆ', 'pʰ'), ('ㄇ', 'm'), ('ㄈ', 'f'), ('ㄪ', 'ʋ'),
			('ㄉ', 't'), ('ㄊ', 'tʰ'), ('ㄋ', 'n'), ('ㄌ', 'l'),
			('ㄍ', 'k'), ('ㄎ', 'kʰ'), ('ㄫ', 'ŋ'), ('ㄏ', 'x'),
			('ㄐ', 'tɕ'), ('ㄑ', 'tɕʰ'), ('ㄬ', 'ȵ'), ('ㄒ', 'ɕ'),
			('ㄓ', 'tʂ'), ('ㄔ', 'tʂʰ'), ('ㄕ', 'ʂ'), ('ㄖ', 'ɻ'),
			('ㄗ', 'ts'), ('ㄘ', 'tsʰ'), ('ㄙ', 's'),

			('ㄧ', 'i'), ('ㄨ', 'u'), ('ㄩ', 'y'), ('ㄦ', 'ɚ'),
			('ㄝ', 'e'), ('ㄜ', 'ə'), ('ㄛ', 'o'),
			('ㄚ', 'a'),
			('ㄟ', 'əi'), ('ㄡ', 'əu'), ('ㄣ', 'ən'), ('ㄥ', 'əŋ'),
			('ㄞ', 'ai'), ('ㄠ', 'au'), ('ㄢ', 'an'), ('ㄤ', 'aŋ'),
			('iən', 'in'), ('yən', 'yn'),
			('iəŋ', 'iŋ'), ('yəŋ', 'ioŋ'), ('uəŋ', 'oŋ'),
			('ian', 'iɛn'),

			('0', ''),  # 輕聲
			('5', 'ʔ5'),
		]

	def 析(自, 列):
		if len(列) < 2: return
		字, py = 列[:2]
		if 字 in 自.hzs_to_skip: return
		字 = 自.hz_repls.get(字, 字)
		for pattern, repl in 自.py_repls:
			py = re.sub(pattern, repl, py)
		return 字, py
